home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / tex / inputs / amstexsiam.sty < prev    next >
Text File  |  1991-05-20  |  22KB  |  549 lines

  1. % This is the AmSTeX SIAM style file, (amstex)siam.sty.
  2. %  RCS information: $Revision: 1.1 $, $Date: 88/03/30 11:41:06 $.
  3. %  Authors: Bradley J. Lucier and Douglas N. Arnold.
  4. %  Copyright 1988 by Bradley Lucier.  All rights reserved.
  5. %
  6. % You have permission to copy this file, to use it as input to other TeX
  7. % files, and to modify it as necessary to allow it to run at your site.
  8. % In the interest of maintaining a consistent revision history, if you
  9. % make changes, additions, or deletions to this file, you must indicate
  10. % how the changes affected the original file, so that the original file
  11. % can be reconstructed if necessary.  Possible changes include: changing
  12. % all fonts to the Almost computer Modern fonts, changing the position of
  13. % the printing on the page with hoffset and voffset, and changing the
  14. % definition of \eightsmc to a font that is available at your site.
  15. %
  16. % To suggest changes for future versions of siam.sty or make other
  17. % comments, contact
  18. %
  19. %   Prof. B. Lucier
  20. %   Department of Mathematics
  21. %   Purdue University
  22. %   West Lafayette, IN   47907
  23. %     lucier@cs.purdue.edu
  24. %
  25. % This is an unofficial siam style file for AmSTeX, version 1.0 or
  26. % later.  It has been used to produce papers for SIAM journals that have
  27. % been totally acceptable to the SIAM production editors.  There is a set
  28. % of instructions for using this style file to produce documents that are
  29. % very similar to papers in SIAM journals.  To obtain a copy, send the
  30. % message
  31. %
  32. % send amstex from siam
  33. %
  34. %  to research!netlib or netlib@anl-mcs.arpa, or contact
  35. %
  36. %   Prof. D. Arnold
  37. %   Department of Mathematics
  38. %   University of Maryland
  39. %   College Park, MD  20742
  40. %      dna@emmy.umd.edu
  41. %
  42. % This style file is unsupported.
  43. \catcode`\@=11
  44. \ifx\siamloaded@AmS\relax\catcode`\@=\active
  45.  \endinput\else\let\siamloaded@AmS\relax\fi
  46. \W@{This is an AmS-TeX compatible SIAM style file.}
  47. \W@{Copyright 1988 by Bradley Lucier.}
  48. \W@{This style file can be used only under the terms contained in the file.}
  49. \hsize 31 pc \hcorrection{0.6666666 in}
  50. \vsize 49.5 pc \vcorrection{0.3333333 in}
  51. \topskip=12pt
  52. \normallineskiplimit\p@
  53. \captionwidth@\hsize
  54. \advance\captionwidth@-1.5in
  55. \font@\ninerm=cmr9
  56. \font@\eightrm=cmr8
  57. \font@\sixrm=cmr6
  58. \font@\ninei=cmmi9    \skewchar\ninei='177
  59. \font@\eighti=cmmi8   \skewchar\eighti='177
  60. \font@\sixi=cmmi6     \skewchar\sixi='177
  61. \font@\ninesy=cmsy9   \skewchar\ninesy='60
  62. \font@\eightsy=cmsy8  \skewchar\eightsy='60
  63. \font@\sixsy=cmsy6    \skewchar\sixsy='60
  64. \font@\ninebf=cmbx9
  65. \font@\eightbf=cmbx8
  66. \font@\sixbf=cmbx6
  67. \font@\nineit=cmti9
  68. \font@\eightit=cmti8
  69. \font@\ninesl=cmsl9
  70. \font@\eightsl=cmsl8
  71. \font@\ninemsx=msxm9
  72. \font@\eightmsx=msxm8
  73. \font@\sixmsx=msxm6
  74. \font@\ninemsy=msym9
  75. \font@\eightmsy=msym8
  76. \font@\sixmsy=msym6
  77. \font@\tensmc=cmcsc10
  78. \font@\eightsmc=cmcsc10 scaled 800
  79. \parindent 2 em
  80. \def\tenpoint{\def\pointsize@{10}%
  81.  \normalbaselineskip12\p@
  82.  \abovedisplayskip12\p@ plus3\p@ minus9\p@
  83.  \belowdisplayskip12\p@ plus3\p@ minus9\p@
  84.  \abovedisplayshortskip\z@ plus3\p@
  85.  \belowdisplayshortskip7\p@ plus3\p@ minus4\p@
  86.  \textfont@\rm\tenrm
  87.  \textfont@\it\tenit
  88.  \textfont@\sl\tensl
  89.  \textfont@\bf\tenbf
  90.  \textfont@\smc\tensmc
  91.  \ifsyntax@\def\big##1{{\hbox{$\left##1\right.$}}}\else
  92.  \let\big\tenbig@
  93.  \textfont\z@\tenrm  \scriptfont\z@\sevenrm  \scriptscriptfont\z@\fiverm
  94.  \textfont\@ne\teni  \scriptfont\@ne\seveni  \scriptscriptfont\@ne\fivei
  95.  \textfont\tw@\tensy \scriptfont\tw@\sevensy \scriptscriptfont\tw@\fivesy
  96.  \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  97.  \textfont\itfam\tenit
  98.  \textfont\slfam\tensl
  99.  \textfont\bffam\tenbf \scriptfont\bffam\sevenbf
  100.   \scriptscriptfont\bffam\fivebf
  101.  \textfont\msxfam=\tenmsx
  102.  \scriptfont\msxfam=\sevenmsx
  103.  \scriptscriptfont\msxfam=\fivemsx
  104.  \textfont\msyfam=\tenmsy
  105.  \scriptfont\msyfam=\sevenmsy
  106.  \scriptscriptfont\msyfam=\fivemsy
  107.  \fi
  108.  \setbox\strutbox\hbox{\vrule height8.5\p@ depth3.5\p@ width\z@}%
  109.  \setbox\strutbox@\hbox{\vrule height8\p@ depth3\p@ width\z@}%
  110.  \normalbaselines\tenrm\ex@=.2326ex}
  111. \def\eightpoint{\def\pointsize@{8}%
  112.  \normalbaselineskip10\p@
  113.  \abovedisplayskip10\p@ plus2.4\p@ minus7.2\p@
  114.  \belowdisplayskip10\p@ plus2.4\p@ minus7.2\p@
  115.  \abovedisplayshortskip\z@ plus2.4\p@
  116.  \belowdisplayshortskip5.6\p@ plus2.4\p@ minus3.2\p@
  117.  \textfont@\rm\eightrm
  118.  \textfont@\it\eightit
  119.  \textfont@\sl\eightsl
  120.  \textfont@\bf\eightbf
  121.  \textfont@\smc\eightsmc
  122.  \ifsyntax@\def\big##1{{\hbox{$\left##1\right.$}}}\else
  123.  \let\big\eightbig@
  124.  \textfont\z@\eightrm \scriptfont\z@\sixrm  \scriptscriptfont\z@\fiverm
  125.  \textfont\@ne\eighti \scriptfont\@ne\sixi  \scriptscriptfont\@ne\fivei
  126.  \textfont\tw@\eightsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivesy
  127.  \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  128.  \textfont\itfam\eightit
  129.  \textfont\slfam\eightsl
  130.  \textfont\bffam\eightbf \scriptfont\bffam\sixbf
  131.    \scriptscriptfont\bffam\fivebf
  132.  \textfont\msxfam=\eightmsx
  133.  \scriptfont\msxfam=\sixmsx
  134.  \scriptscriptfont\msxfam=\fivemsx
  135.  \textfont\msyfam=\eightmsy
  136.  \scriptfont\msyfam=\sixmsy
  137.  \scriptscriptfont\msyfam=\fivemsy
  138.  \fi
  139.  \setbox\strutbox\hbox{\vrule height7\p@ depth3\p@ width\z@}%
  140.  \setbox\strutbox@\hbox{\vrule height6.5\p@ depth2.5\p@ width\z@}%
  141.  \normalbaselines\eightrm\ex@=.2326ex}
  142. \def\tenbig@#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
  143. \def\eightbig@#1{{\hbox{$\textfont\z@\ninerm\textfont\tw@\ninesy
  144.  \left#1\vbox to6.5\p@{}\right.\n@space$}}}
  145. \def\footmarkform@#1{$^{#1}$}
  146. \let\thefootnotemark\footmarkform@
  147. \def\makefootnote@#1#2{\insert\footins
  148.  {\interlinepenalty\interfootnotelinepenalty
  149.  \eightpoint\splittopskip\ht\strutbox\splitmaxdepth\dp\strutbox
  150.  \floatingpenalty\@MM\leftskip\z@\rightskip\z@\spaceskip\z@\xspaceskip\z@
  151.  \indent{#1}\footstrut\ignorespaces#2\unskip\lower\dp\strutbox
  152.  \vbox to\dp\strutbox{}}}
  153. \footmarkcount@\z@
  154. \def\footnotemark{\let\@sf\empty\relaxnext@\ifhmode\edef
  155.  \@sf{\spacefactor\the\spacefactor}\/\fi
  156.  \def\next@{\ifx[\next\let\next\nextii@\else
  157.   \ifx"\next\let\next\nextiii@\else
  158.   \let\next\nextiv@\fi\fi\next}%
  159.  \def\nextii@[##1]{\footmarkform@{##1}\@sf}%
  160.  \def\nextiii@"##1"{{##1}\@sf}%
  161.  \def\nextiv@{\global\advance\footmarkcount@\@ne
  162.   \footmarkform@{\number\footmarkcount@}\@sf}%
  163.  \futurelet\next\next@}
  164. \def\footnotetext{\relaxnext@
  165.  \def\next@{\ifx[\next\let\next\nextii@\else
  166.   \ifx"\next\let\next\nextiii@\else
  167.   \let\next\nextiv@\fi\fi\next}%
  168.  \def\nextii@[##1]##2{\makefootnote@{\footmarkform@{##1}}{##2}}%
  169.  \def\nextiii@"##1"##2{\makefootnote@{##1}{##2}}%
  170.  \def\nextiv@##1{\makefootnote@{\footmarkform@{\number\footmarkcount@}}{##1}}%
  171.  \futurelet\next\next@}
  172. \def\footnote{\let\@sf\empty\relaxnext@\ifhmode\edef
  173.  \@sf{\spacefactor\the\spacefactor}\/\fi
  174.  \def\next@{\ifx[\next\let\next\nextii@\else
  175.   \ifx"\next\let\next\nextiii@\else
  176.   \let\next\nextiv@\fi\fi\next}%
  177.  \def\nextii@[##1]##2{\footnotemark[##1]\footnotetext[##1]{##2}}%
  178.  \def\nextiii@"##1"##2{\footnotemark"##1"\footnotetext"##1"{##2}}%
  179.  \def\nextiv@##1{\footnotemark\footnotetext{##1}}%
  180.  \futurelet\next\next@}
  181. \def\adjustfootnotemark#1{\advance\footmarkcount@#1\relax}
  182. \def\topmatter{\normallineskip0pt\normallineskiplimit0pt\parskip0pt\normalbaselines}
  183. \newbox\titlebox@
  184. \setbox\titlebox@\vbox{}
  185. \Invalid@\overlong
  186. \def\overlong@{\def\next@{\ifx\next\overlong\def\filhss@
  187.  {plus\@m\p@ minus\@m\p@}\def\next@\overlong{\nextii@}\else
  188.  \def\filhss@{plus\@m\p@\relax}\let\next@\nextii@\fi\next@}}
  189. \def\title{\relaxnext@
  190.  \def\nextii@##1\endtitle{{\def\\{\cr\strut}
  191.  \global\setbox\titlebox@\vbox{\tabskip\z@\filhss@
  192.  \halign to\hsize{\tenpoint\bf\hfil\ignorespaces####\unskip\hfil\cr\strut##1\cr}}}}%
  193.  \overlong@
  194.  \futurelet\next\next@}
  195. \newif\ifauthor@
  196. \newbox\authorbox@
  197. \def\author{\relaxnext@
  198.  \def\nextii@##1\endauthor{{\def\\{\cr\strut}
  199.  \global\setbox\authorbox@\vbox{\tabskip\z@\filhss@
  200.  \halign to\hsize{\eightpoint\smc\hfil\ignorespaces####\unskip\hfil\cr\strut##1\cr
  201.  }}}}\overlong@\global\author@true
  202.  \futurelet\next\next@}
  203. \def\affil{\Err@{Do not use \string\affil\space in the siam style}}
  204. \def\endaffil{\Err@{Do not use \string\endaffil\space in the siam style}}
  205. \def\address{\Err@{Do not use \string\address\space in the siam style}}
  206. \def\date{\Err@{Do not use \string\date\space in the siam style}}
  207. \def\thanks{\Err@{Do not use \string\thanks\space in the siam style}}
  208. \Invalid@\nofrills
  209. \Invalid@\usualspace
  210. \newif\ifnofrills@
  211. \def\usualspace@#1{\ifnofrills@\def\usualspace{#1}\fi}
  212. \def\nofrills@#1#2{\def\next@{\ifx\next\nofrills\nofrills@true\let#2\relax
  213.  \def\next@\nofrills{\nextii@}\else\nofrills@false
  214.  \def#2{#1}\let\next@\nextii@\fi\next@}}
  215. \def\proclaim{\innerproclaim@}
  216. \def\endproclaim{\innerendproclaim@}
  217. \newif\ifabstract@
  218. \def\theabstract@{}
  219. \def\abstract{\relaxnext@\nofrills@{{\bf Abstract.\enspace}}\abstract@
  220.  \long\def\nextii@##1{\long\gdef\theabstract@{\usualspace@
  221.   {{\eightpoint\enspace}}\eightpoint\abstract@\ignorespaces##1\par}}%
  222.  \global\abstract@true
  223.  \futurelet\next\next@}
  224. \newif\ifkeywords@
  225. \def\thekeywords@{}
  226. \def\keywords{\relaxnext@\nofrills@{{\bf Key words.\enspace}}\keywords@
  227.  \long\def\nextii@##1{\long\gdef\thekeywords@{\usualspace@
  228.     {{\eightpoint\enspace}}\eightpoint\keywords@\ignorespaces##1\par}}%
  229.  \global\keywords@true
  230.  \futurelet\next\next@}
  231. \newif\ifsubjclass@
  232. \def\thesubjclass@{}
  233. \def\subjclass{\relaxnext@\nofrills@{{\bf AMS(MOS) subject classifications.\enspace}}\subjclass@
  234.  \long\def\nextii@##1{\long\gdef\thesubjclass@{\usualspace@
  235.     {{\eightpoint\enspace}}\eightpoint\subjclass@\ignorespaces##1\par}}%
  236.  \global\subjclass@true
  237.  \futurelet\next\next@}
  238. \def\pretitle{}
  239. \def\preauthor{}
  240. \def\preabstract{}
  241. \def\prekeywords{}
  242. \def\presubjclass{}
  243. \def\prepaper{}
  244. \def\endtopmatter{\hrule height\z@\vskip-\topskip
  245.  \pretitle
  246.  \vskip16\p@ %
  247.  \unvbox\titlebox@
  248.  \preauthor
  249.  \ifauthor@\vskip7.5\p@%
  250.      {\unvbox\authorbox@}\fi
  251.  \preabstract
  252.  \ifabstract@\vskip14\p@%
  253.      {\eightpoint\indent\strut\theabstract@}\fi
  254.  \prekeywords
  255.  \ifkeywords@\vskip 8 pt%
  256.   {\eightpoint\indent\strut\thekeywords@}\fi
  257.  \presubjclass
  258.  \ifsubjclass@\vskip 8 pt%
  259.   {\eightpoint\indent\strut\thesubjclass@}\fi
  260.  \prepaper
  261.  \outer\def\proclaim{\innerproclaim@}%
  262.  \outer\def\endproclaim{\innerendproclaim@}%
  263.  \vskip8\p@%
  264.  \parskip=0 pt plus 1 pt 
  265.  \normallineskiplimit=1pt\normallineskip=1pt
  266.      \tenpoint}
  267. \outer\def\enddocument{\vfill\supereject\end}
  268. \newbox\headingbox@
  269. \outer\def\heading{\relaxnext@
  270.  \def\nextii@{\bigbreak\bgroup\let\\=\cr
  271.  \global\setbox\headingbox@\vbox\bgroup\tabskip\z@\filhss@
  272.  \halign to\hsize\bgroup\tenpoint\smc\hfil\ignorespaces####\unskip\hfil\cr}%
  273.  \overlong@
  274.  \futurelet\next\next@}
  275. \def\endheading{\cr\egroup\egroup\egroup\unvbox\headingbox@
  276.  \nobreak\medskip}
  277. \def\subheading{\relaxnext@\nofrills@{.\enspace}\subheading@
  278.  \def\nextii@##1{\medbreak\indent{\usualspace@{{\bf\enspace}}%
  279.   \tenpoint\bf\ignorespaces##1\unskip\subheading@}\ignorespaces}%
  280.  \futurelet\next\next@}
  281. \newif\ifproclaim@
  282. \def\innerproclaim@{\relaxnext@\nofrills@{.\enspace}\proclaim@
  283.  \def\nextii@##1{\par\def\next{8}%
  284.   {\usualspace@{{\smc\enspace}}\smc\ignorespaces##1\unskip\proclaim@}\it
  285.   \ifproclaim@\Err@{Previous \expandafter
  286.  \eat@\string\\proclaim has no matching \expandafter
  287.  \eat@\string\\endproclaim}\else\proclaim@true\fi\ignorespaces}%
  288.  \futurelet\next\next@}
  289. \def\innerendproclaim@{\proclaim@false\par\rm
  290.  }
  291. \def\demo{\relaxnext@\nofrills@{.\enspace}\demo@
  292.  \def\nextii@##1{\par{\usualspace@{{\it\enspace}}%
  293.   \it\ignorespaces##1\unskip\demo@}\rm
  294.   \ifproclaim@\Err@{Previous \expandafter
  295.   \eat@\string\\proclaim had no matching \expandafter
  296.   \eat@\string\\endproclaim}\fi\ignorespaces}%
  297.  \futurelet\next\next@}
  298. \def\enddemo{\par}
  299. \def\qed{\ifhmode\unskip\nobreak\fi\ifmmode\ifinner\else\hskip5\p@\fi\fi
  300.  \hbox{\hskip5\p@\lower 1.5 pt\hbox{\vrule width .2 pt 
  301.  \vbox{\hrule width 4 pt height .2 pt \vskip 7.1 pt
  302.  \hrule width 4 pt height .2 pt }\unskip\vrule width .2 pt}\hskip\p@}}
  303. \def\cite#1{\relaxnext@
  304.  \def\nextiii@##1,##2\end@{[{\rm##1},##2]}%
  305.  \in@,{#1}\ifin@\def\next{\nextiii@#1\end@}\else
  306.  \def\next{[{\rm#1}]}\fi\next}
  307. \newcount\rostercount@
  308. \newdimen\rosterindent
  309. \newdimen\rosterindent@
  310. \newdimen\labelwidth@
  311. \rosterindent=20 pt
  312. \rosterindent@=20 pt
  313. \newif\iffirstitem@
  314. \newtoks\everypartoks@
  315. \let\plainitem@\item
  316. \def\par@{\everypartoks@=\expandafter{\the\everypar}\everypar{}}
  317. \def\roster{\global\advance\rosterindent@\rosterindent\labelwidth@=\rosterindent@
  318.  \advance\labelwidth@-7.222222 pt\relax
  319.  \edef\leftskip@{\leftskip\the\leftskip}\relaxnext@
  320.  \rostercount@\z@\def\item{\futurelet\next\rosteritem@}%
  321.  \def\next@{\ifx\next\runinitem\let\next\nextii@\else
  322.   \let\next\nextiii@\fi\next}%
  323.  \def\nextii@\runinitem{\unskip
  324.   \def\next@{\ifx\next[\let\next\nextii@\else
  325.    \ifx\next"\let\next\nextiii@\else\let\next\nextiv@\fi\fi\next}%
  326.   \def\nextii@[####1]{\rostercount@####1\relax
  327.    \enspace{\rm(\number\rostercount@)}~\ignorespaces}%
  328.   \def\nextiii@"####1"{\enspace{\rm####1}~\ignorespaces}%
  329.   \def\nextiv@{\enspace{\rm(1)}\rostercount@\@ne~}%
  330.   \par@\firstitem@false
  331.   \futurelet\next\next@}%
  332.  \def\nextiii@{\par\par@\penalty\@m
  333.   \firstitem@true}%
  334.  \futurelet\next\next@}
  335. \def\rosteritem@{\iffirstitem@\firstitem@false\else\par\fi
  336.  \leftskip\rosterindent@\noindent
  337.  \def\next@[##1]{\rostercount@##1\relax
  338.   \llap{\hbox to\labelwidth@{\hss\rm(\number\rostercount@)}\hskip
  339.   7.222222 pt}\ignorespaces}%
  340.  \def\nextii@"##1"{%
  341.   \llap{\hbox to\labelwidth@{\hss\rm##1}\hskip7.222222 pt}\ignorespaces}%
  342.  \def\nextiii@{\advance\rostercount@\@ne
  343.   \llap{\hbox to\labelwidth@{\hss\rm(\number\rostercount@)}\hskip
  344.   7.222222 pt}}%
  345.  \ifx\next[\let\next\next@\else\ifx\next"\let\next\nextii@\else
  346.  \let\next\nextiii@\fi\fi\next}
  347. \def\therosteritem#1{{\rm(\ignorespaces#1\unskip)}}
  348. \newif\ifnextRunin@
  349. \def\endroster{\global\advance\rosterindent@-\rosterindent\relax
  350.  \relaxnext@\par\leftskip@
  351.  \penalty-50 \vskip\parskip
  352.  \def\next@{\ifx\next\Runinitem\let\next@\relax
  353.   \else\nextRunin@false\let\item\plainitem@\ifx\next\par
  354.   \def\next@\par{\everypar=\expandafter{\the\everypartoks@}}%
  355.   \else\def\next@{\noindent\everypar=\expandafter{\the\everypartoks@}}%
  356.   \fi\fi\next@}%
  357.  \futurelet\next\next@}
  358. \newcount\rosterhangafter@
  359. \def\Runinitem#1\roster\runinitem{\relaxnext@\rostercount@\z@
  360.  \def\item{\futurelet\next\rosteritem@}%
  361.  \def\runinitem@{#1}%
  362.  \def\next@{\ifx\next[\let\next\nextii@\else\ifx\next"\let\next\nextiii@
  363.   \else\let\next\nextiv@\fi\fi\next}%
  364.  \def\nextii@[##1]{\rostercount@##1\relax\def\item@{{\rm(\number
  365.   \rostercount@)}}\nextv@}%
  366.  \def\nextiii@"##1"{\def\item@{{\rm##1}}\nextv@}%
  367.  \def\nextiv@{\advance\rostercount@\@ne\def\item@{{\rm(\number
  368.   \rostercount@)}}\nextv@}%
  369.  \def\nextv@{\setbox\z@\vbox
  370.   {\ifnextRunin@\noindent\fi
  371.   \runinitem@\unskip\enspace\item@~\par
  372.   \global\rosterhangafter@\prevgraf}%
  373.   \firstitem@false\ifnextRunin@\else\par\fi
  374.   \hangafter\rosterhangafter@\hangindent\rosterindent@
  375.   \ifnextRunin@\noindent\fi\runinitem@\unskip\enspace
  376.   \item@~\ifnextRunin@\else\par@\fi\nextRunin@true\ignorespaces}%
  377.  \futurelet\next\next@}
  378. \outer\def\Refs{\relaxnext@\def\refskip@{\hskip\@ne sp\hskip\m@ne sp}%
  379.  \def\next@{\ifx\next\nofrills\def\next@\nofrills{\nextii@}\else
  380.   \def\next@{\nextii@{REFERENCES}}\fi\next@}%
  381.  \def\nextii@##1{\vskip 24 pt\goodbreak\hbox to\hsize{\hfil\eightpoint
  382.   \rm\ignorespaces##1\unskip\hfil}\nobreak
  383.   \vskip 8 pt\eightpoint\sfcode`.=\@m}%
  384.  \futurelet\next\next@}
  385. \newbox\nobox@        \newbox\keybox@        \newbox\bybox@
  386. \newbox\bysamebox@    \newbox\paperbox@      \newbox\paperinfobox@
  387. \newbox\jourbox@      \newbox\volbox@        \newbox\issuebox@
  388. \newbox\yrbox@                               \newbox\pagesbox@
  389. \newbox\bookbox@
  390. \newbox\bookinfobox@  \newbox\publbox@       \newbox\publaddrbox@
  391. \newbox\finalinfobox@
  392. \newif\ifno@          \newif\ifkey@          \newif\ifby@ \newif\ifmanyby@
  393. \newif\ifbysame@      \newif\ifpaper@        \newif\ifpaperinfo@
  394. \newif\ifjour@        \newif\ifvol@          \newif\ifissue@
  395. \newif\ifyr@ \newif\iftoappear@              \newif\ifpages@ \newif\ifpage@
  396. \newif\ifbook@ \newif\ifinbook@
  397. \newif\ifbookinfo@    \newif\ifpubl@         \newif\ifpubladdr@
  398. \newif\iffinalinfo@   \newif\ifafterbook@
  399. \newif\iffirstref@    \newif\iflastref@      \newif\ifprevjour@
  400. \newif\ifprevbook@    \newif\ifprevinbook@   \newif\ifnojourinfo@
  401. \newdimen\maxbysamerule@
  402. \maxbysamerule@3 em
  403. \def\ref@{\global\no@false\global\key@false\global\by@false
  404.  \global\bysame@false\global\paper@false\global\paperinfo@false
  405.  \global\jour@false\global\vol@false\global\issue@false
  406.  \global\yr@false\global\toappear@false\global\pages@false\global\page@false
  407.  \global\book@false\global\inbook@false
  408.  \global\bookinfo@false\global\publ@false\global\publaddr@false
  409.  \global\finalinfo@false
  410.  \bgroup\ignorespaces}
  411. \Invalid@\moreref
  412. \outer\def\ref{\begingroup
  413.  \noindent\hangindent 42 pt\hangafter\@ne\firstref@true
  414.  \lastref@false\def\moreref{\egroup\endref@\global\firstref@false\ref@}\ref@}
  415. \def\refdef@#1#2{\def#1{\egroup
  416.  \csname\expandafter\eat@\string#1@true\endcsname
  417.  \expandafter\setbox
  418.  \csname\expandafter\eat@\string#1box@\endcsname\hbox\bgroup#2}}
  419. \refdef@\no\relax \refdef@\key\relax
  420. \def\manyby{\egroup\global\manyby@true\by@true\setbox\bybox@\hbox\bgroup\smc}
  421. \def\by{\egroup\by@true\bysame@false\global\manyby@false
  422.  \setbox\bybox@\hbox\bgroup\smc}
  423. \def\bysame{\egroup\bysame@true\bgroup}
  424. \refdef@\paper\it
  425. \refdef@\paperinfo\relax
  426. \def\jour{\egroup\jour@true\prevjour@true\setbox
  427.  \jourbox@\hbox\bgroup}
  428. \refdef@\vol\rm
  429. \refdef@\issue\relax \refdef@\yr\relax
  430. \def\toappear{\egroup\toappear@true\bgroup}
  431. \refdef@\pages\relax
  432. \def\page{\egroup\page@true\setbox\pagesbox@\hbox\bgroup}
  433. \refdef@\book\it
  434. \def\inbook{\egroup\inbook@true\previnbook@true\setbox
  435.  \bookbox@\hbox\bgroup\rm}
  436. \refdef@\bookinfo\relax
  437. \refdef@\publ\relax
  438. \refdef@\publaddr\relax
  439. \refdef@\finalinfo\relax
  440. \def\setpunct@{\def\prepunct@{\ifnum\lastpenalty<0
  441.  \edef\penalty@{\penalty\the\lastpenalty}\unpenalty,
  442.   \penalty@\relax\space\else
  443.  \ifdim\lastskip=\@ne sp\unskip\unskip
  444.  \edef\penalty@{\penalty\the\lastpenalty}\unpenalty,
  445.   \penalty@\relax\space
  446.  \else,\space\fi\fi\afterbook@false}}
  447. \def\ppunbox@#1{\prepunct@\unhbox#1\unskip}
  448. \def\endref@{\let\prepunct@\relax
  449.  \iffirstref@
  450.   \ifno@\hbox to 27 pt {\hss[\unhbox\nobox@\unskip]\kern 8.5 pt}\else
  451.   \ifkey@\hbox to 27 pt{\hss\unhbox\keybox@\unskip\kern 8.5pt}\else\hbox to 8.5pt {}\fi\fi
  452.   \ifmanyby@
  453.    \ifby@\hbox{\unhcopy\bybox@\unskip}\setpunct@
  454.   \global\setbox\bysamebox@\hbox{\unhcopy\bybox@\unskip}\else
  455.   \ifbysame@\ifdim\wd\bysamebox@>\maxbysamerule@
  456.     \hbox to\maxbysamerule@{\leaders\hrule height 2.2pt depth -2pt\hfill}\else
  457.     \hbox to \wd\bysamebox@{\leaders\hrule height 2.2pt depth -2pt\hfill}\fi\setpunct@\fi
  458.    \fi
  459.   \else
  460.   \ifby@\unhcopy\bybox@\unskip\setpunct@\fi\fi
  461.  \fi
  462.  \ifpaper@\ppunbox@\paperbox@\setpunct@\fi
  463.  \ifpaperinfo@\ppunbox@\paperinfobox@\setpunct@\fi
  464.  \ifjour@\ppunbox@\jourbox@\setpunct@
  465.    \ifvol@\ppunbox@\volbox@\unskip\setpunct@\fi
  466.    \ifissue@\ \unhbox\issuebox@\unskip\setpunct@\fi
  467.    \ifyr@\ (\unhbox\yrbox@\unskip)\setpunct@\fi
  468.    \iftoappear@\ (to appear)\setpunct@\fi
  469.    \ifpages@\prepunct@ pp.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  470.    \ifpage@\prepunct@ p.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  471.  \else
  472.   \ifprevjour@\unskip\nojourinfo@false
  473.    \ifvol@\else\ifissue@\else\ifyr@\else\nojourinfo@true\fi\fi\fi
  474.    \ifnojourinfo@\else,\fi
  475.    \ifvol@\ppunbox@\volbox@\unskip\setpunct@\fi
  476.    \ifissue@\ \unhbox\issuebox@\unskip\setpunct@\fi
  477.    \ifyr@\ (\unhbox\yrbox@\unskip)\setpunct@\fi
  478.    \iftoappear@\ (to appear)\setpunct@\fi
  479.    \ifpages@\prepunct@ pp.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  480.    \ifpage@\prepunct@ p.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  481.   \fi
  482.  \fi
  483.  \ifbook@\prepunct@\unhbox\bookbox@\unskip\afterbook@true\setpunct@\fi
  484.  \ifinbook@\prepunct@\unskip\ in \unhbox\bookbox@\unskip\afterbook@true
  485.   \setpunct@\global\book@true\fi
  486.  \ifbookinfo@\ppunbox@\bookinfobox@\setpunct@\fi
  487.  \ifpubl@\ppunbox@\publbox@\setpunct@\fi
  488.  \ifpubladdr@\ppunbox@\publaddrbox@\setpunct@\fi
  489.  \ifbook@
  490.   \ifyr@\prepunct@\unhbox\yrbox@\unskip\setpunct@\fi
  491.   \iftoappear@\ifafterbook@\fi\prepunct@ to appear\afterbook@false
  492.    \setpunct@\fi
  493.   \ifpages@\prepunct@ pp.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  494.   \ifpage@\prepunct@ p.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  495.  \else
  496.   \ifprevinbook@\unskip
  497.    \ifyr@\prepunct@\unhbox\yrbox@\unskip\setpunct@\fi
  498.    \iftoappear@\prepunct@ to appear\setpunct@\fi
  499.    \ifpages@\prepunct@ pp.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  500.    \ifpage@\prepunct@ p.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  501.   \fi
  502.  \fi
  503. \iffinalinfo@.\afterbook@false
  504. \spacefactor3000\relax\space\unhbox\finalinfobox@\else
  505.  \iflastref@.\afterbook@false\else;
  506.   \afterbook@false\space\fi
  507. \fi}
  508. \def\endref{\egroup\global\lastref@true\endref@\global\prevjour@false\global
  509.  \previnbook@false\par\endgroup}
  510. \newif\iffirstpage@
  511. \firstpage@true
  512. \newif\ifaccepted@
  513. \def\accepted{\accepted@true}
  514. \accepted@false
  515. \output={\output@}
  516. \def\output@{%
  517. \iffirstpage@\global\firstpage@false\shipout\vbox{\ifaccepted@\vbox to 2 pc
  518.  {\baselineskip=8pt\vss
  519.   \hbox to \hsize{\sixrm\journalname\hfill{\tenrm\copyright}\ 
  520.   \issueyear\ Society for Industrial and Applied Mathematics}
  521.   \hbox to \hsize{\sixrm Vol\. \issuevolume, No\. \issuenumber, \issuemonth\ \issueyear\hfill\placenumber}\vskip-\prevdepth\vskip 8 pt}\else\vbox {\vrule height 2 pc width 0 pt}\fi\nointerlineskip
  522.   \vbox to\vsize
  523.   {\boxmaxdepth\maxdepth\pagecontents}\nointerlineskip\vbox to 16 pt{\vss
  524.   \hbox to \hsize{\eightpoint\hfill\number\pageno\hfill}}}%
  525.  \else
  526.  \shipout\vbox{\vbox to 2 pc{\baselineskip=12pt
  527.   \vss\ifodd\pageno
  528.    \hbox to \hsize{\tenpoint\relaxnext@\phantom{\number\pageno}\hfil{\smc\oddhead}\hfil\number\pageno}
  529.   \else
  530.    \hbox to \hsize{\tenpoint\number\pageno\hfil{\smc\evenhead}\hfil\relaxnext@\phantom{\number\pageno}}\fi\vskip-\prevdepth\vskip 12 pt}\nointerlineskip%
  531.   \vbox to\vsize
  532.   {\boxmaxdepth\maxdepth\pagecontents}}%
  533.  \fi
  534.  \global\advance\pageno\@ne
  535.  \ifnum\outputpenalty>-\@MM\else\dosupereject\fi}
  536. \def\journalname{}
  537. \def\issuevolume{}
  538. \def\issuenumber{}
  539. \def\issuemonth{}
  540. \def\placenumber{}
  541. \def\issueyear{}
  542. \def\oddhead{}
  543. \def\evenhead{}
  544. \def\footnoterule{\hrule width 36 pt height .2 pt \vskip 2.8\p@}
  545. \skip\footins=12 pt plus 18 pt minus 6 pt
  546. \tenpoint
  547. \catcode`\@=\active
  548. \def\styname{siam}\def\styversion{1.0}
  549.